package com.wr.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 分组
 */
public class RegExp_5 {
    public static void main(String[] args) {

        /**
         * () 表示分组
         *（?<name>）  表示命名分组
         */
//        String str = "1234dgdec1232";
//        String regStr = "(?<g1>\\d\\d)(\\d\\d)";
//        Pattern pattern = Pattern.compile(regStr);
//        Matcher matcher = pattern.matcher(str);
//        while (matcher.find()){
//            System.out.println("找到："+matcher.group(0));
//            System.out.println("找到："+matcher.group("g1"));
//        }


        /**
         * // 特殊分组 ，只能用group（0）方法来捕获
         *
         * 1.韩顺平老师|韩顺平教育|韩顺平学生 == 韩顺平(?:老师|教育|学生)
         *   String regStr = "韩顺平(?:老师|教育|学生)";
         *
         * 2.韩顺平老师  韩顺平教育   韩顺平学生 ，使用(?=pattern)匹配，例如  韩顺平(?=学生)  那么韩顺平老师 这个子字符串就不会被匹配到，只会打印一个 韩顺平
         * String regStr = "韩顺平(?=学生)";   打印： ‘找到：韩顺平’
         *
         * 3.(?!pattern)  与第二种取反结果
         *
         */
        String str = "韩顺平老师  韩顺平教育  韩顺平学生";
        String regStr = "韩顺平(?=学生)";
        Pattern pattern = Pattern.compile(regStr);
        Matcher matcher = pattern.matcher(str);
        while (matcher.find()) {
            System.out.println("找到：" + matcher.group(0));
        }
    }
}
